package com.jacob.androidstudy.javanote;

import java.util.Map;

/**
 * Java为8种基本类型提供了8种包装类。
 * 包装类也用对象池，进行对象构造。构造过程和String类是一样的。
 * 包装类对象本身，创建后也是不可改变的。如果要频繁改变包装类对象的值，应使用基本类型。
 * 包装类提供的域和方法，参看API。
 */
public class $11_包装类 {

	public static void main(String[] args) {
		
		/**
		 * Integer包装类的常用方法
		 */
		
//		JVM会对象池外创建一个Integer对象，然后将引用赋给i1、i2。
		Integer i1 = new Integer(100); //用int构造Integer对象
		Integer i2 = new Integer("100"); //用string构造Integer对象
		
//		Java5.0提供的自动装箱功能，可以在需要时，自动将int值换转为Integer对象。
//		JVM会先在Integer对象池中寻找值为10的Integer对象。若找到，则将引用赋给i3；若找不到，则会在对象池中创建一个值为10的Integer对象，然后将引用赋给i3。
		Integer i3 = 10;
		
//		Java5.0提供的自动拆箱功能，可以在需要时，自动将Integer对象换转为int值。
		int i4 = new Integer(10);
		
		i1.intValue(); //得到Integer对象的int值
		i2.toString(); //得到Integer对象值的string形式
		
		Integer.parseInt("265"); //将一个string转换成int值并返回
		Integer.parseInt("1010",2); //将一个string按照2进制转换成int值并返回
		
		Integer.toString(100); //将一个int值转换成string并返回
		Integer.toString(100,2); //将一个int值按照2进制转换成string并返回
		
		Integer.valueOf(100); //将一个int值转换成Integer对象并返回
		Integer.valueOf("100"); //将一个string转换成Integer对象并返回
		Integer.valueOf("100",2); //将一个string按照2进制转换成Integer对象并返回
		
		Byte b;//字节包装类
		Short s;//短整型包装类
		
		Long l;//长整型包装类
		Float f;//单精度包装类
		Double d;//双精度包装类
		Boolean bl;//布尔包装类
		Character c;//字符包装类
	}

}
